package cl.usm.acceso.bean;

import java.util.List;
import java.util.Map;

import javax.faces.component.html.HtmlDataTable;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

import cl.usm.acceso.dao.PrendaDAO;

public class RegistroPrendaBean {

	private int idPrenda;
	private int nroOrden;
	private String tipoPrenda;
	private int cantidad;
	private List<PrendaBean> prendas;
	private PrendaBean prenda;
	private HtmlDataTable prendaTable;
	private String retorno;
	
	public RegistroPrendaBean() {
	}
	
	public int getIdPrenda() {
		return idPrenda;
	}

	public void setIdPrenda(int idPrenda) {
		this.idPrenda = idPrenda;
	}

	public int getNroOrden() {
		return nroOrden;
	}

	public void setNroOrden(int nroOrden) {
		this.nroOrden = nroOrden;
	}

	public String getTipoPrenda() {
		return tipoPrenda;
	}

	public void setTipoPrenda(String tipoPrenda) {
		this.tipoPrenda = tipoPrenda;
	}

	public int getCantidad() {
		return cantidad;
	}

	public void setCantidad(int cantidad) {
		this.cantidad = cantidad;
	}

	public List<PrendaBean> getPrendas() {
		return prendas;
	}

	public void setPrendas(List<PrendaBean> prendas) {
		this.prendas = prendas;
	}

	public PrendaBean getPrenda() {
		return prenda;
	}

	public void setPrenda(PrendaBean prenda) {
		this.prenda = prenda;
	}

	public HtmlDataTable getPrendaTable() {
		return prendaTable;
	}

	public void setPrendaTable(HtmlDataTable prendaTable) {
		this.prendaTable = prendaTable;
	}

	public String getRetorno() {
		return retorno;
	}

	public void setRetorno(String retorno) {
		this.retorno = retorno;
	}

	public void orden(ActionEvent accion) {
		FacesContext context = FacesContext.getCurrentInstance();
		Map<String, String> map = context.getExternalContext().getRequestParameterMap();
		String numeroOrden = (String) map.get("numeroOrden");
		if (numeroOrden != null) {
			nroOrden = Integer.valueOf(numeroOrden);
			setRetorno("registrarPrenda");
		} else {
			setRetorno("");
		}
	}
	
	public void agregar(ActionEvent accion) {
		PrendaDAO prenda = new PrendaDAO();
		if (prenda.agregar(nroOrden, tipoPrenda, cantidad) == 1) {
			setRetorno("ok");
			tipoPrenda = null;
			cantidad = 0;
		} else {
			setRetorno("error");
		}
	}
	
	public void modificar(ActionEvent accion) {
		PrendaDAO prenda = new PrendaDAO();
		if (prenda.modificar(idPrenda, nroOrden, tipoPrenda, cantidad) == 1) {
			setRetorno("ok");
			tipoPrenda = null;
			cantidad = 0;
		} else {
			setRetorno("error");
		}
	}
	
	public void eliminar(ActionEvent accion) {
		PrendaDAO prenda = new PrendaDAO();
		if (prenda.eliminar(idPrenda, nroOrden) == 1) {
			setRetorno("ok");
			tipoPrenda = null;
			cantidad = 0;
		} else {
			setRetorno("error");
		}
	}
	
	public String eliminarPrenda() {
		prenda = (PrendaBean) prendaTable.getRowData();
		idPrenda = prenda.getIdPrenda();
		
		PrendaDAO prenda = new PrendaDAO();
		if (prenda.eliminar(idPrenda, nroOrden) == 1) {
			return Integer.toString(1);			
		} else {
			return Integer.toString(0);
		}
		// return Integer.toString(idPrenda);
	}
	
	public String seleccionPrenda() {
		prenda = (PrendaBean) prendaTable.getRowData();
		idPrenda = prenda.getIdPrenda();
		tipoPrenda = prenda.getTipoPrenda();
		cantidad = prenda.getCantidad();
		return Integer.toString(idPrenda);
	}
	
	public List<PrendaBean> getListaPrendas() {
		PrendaDAO prenda = new PrendaDAO();
		prendas = prenda.getListaPrendas(nroOrden);
		System.out.println(prendas.toString());
		return prendas;
   }

}
